package com.wzdigit.wms.basic.client.request.inv;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 
 * 【库存冻结/解冻单表头】创建/修改输入
 * @author Administrator
 *
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler", "fieldHandler" }, ignoreUnknown = false)
public class CreateOrUpdateHoldHeaderRequest implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 冻结/解冻单表头ID
     */
    @ApiModelProperty(value = "冻结/解冻单表头ID", required = false)
    private Integer holdHeaderId;

    /**
     * 冻结/解冻单号
     */
    @ApiModelProperty(value = "冻结/解冻单号", required = true)
    @NotBlank(message = "冻结/解冻单号不能为空！")
    private String holdNo;

    /**
     * 单据类型
     */
    @ApiModelProperty(value = "单据类型", required = true)
    @NotBlank(message = "单据类型不能为空！")
    private String holdType;

    /**
     * 货主，客户主数据中 客户类型=货主，取客户ID
     */
    @ApiModelProperty(value = "货主", required = true)
    @NotNull(message = "货主不能为空！")
    private Integer owner;

    /**
     * 冻结/解冻原因
     */
    @ApiModelProperty(value = "冻结/解冻原因", required = true)
    @NotBlank(message = "冻结/解冻原因不能为空！")
    private String holdCode;

    /**
     * 冻结/解冻原因描述
     */
    @ApiModelProperty(value = "冻结/解冻原因描述", required = false)
    private String holdReason;

    /**
     * 冻结/解冻方式:
     */
    @ApiModelProperty(value = "冻结/解冻方式", required = true)
    @NotBlank(message = "冻结/解冻方式不能为空！")
    private String holdWay;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", required = false)
    private String comments;
}
